package org.jeecg.modules.mes.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mes.entity.MesProductionPlan;
import org.jeecg.modules.oms.entity.ProductSalesOrder;

import java.util.List;

/**
 * @Description: 生产计划管理
 * @Author: jeecg-boot
 * @Date: 2025-01-21
 * @Version: V1.0
 */
public interface MesProductionPlanMapper extends BaseMapper<MesProductionPlan> {

    /**
     * 获取可以生成成品入库单的订单
     * 查询包装入库工种且状态为已完成的任务对应的订单
     * @return 订单列表
     */
    List<ProductSalesOrder> getFinishedOrdersForInbound();

    /**
     * 根据任务领取人获取参与的计划列表
     * @param page 分页参数
     * @param planIds 计划ID列表
     * @param planStatus 计划状态
     * @return 分页结果
     */
    IPage<MesProductionPlan> getPlansByTaskOwnership(
        Page<MesProductionPlan> page,
        @Param("planIds") List<Object> planIds,
        @Param("planStatus") Integer planStatus);
}
